1. Field of the Invention
The present invention relates to digital media, and more particularly to digital media such as cards and modules and combinations. Particularly, the present invention relates to an add-on card unit detachably coupled to a host unit where the card unit contains mass data storage and is capable of providing additional processing power to the host unit.
2. Background Information
In recent years, there are a variety of add-on cards and modules developed for use in digital systems such as personal computers (“PC”). They have enjoyed a measure of success in various memory-intensive applications. Some of these memory add-on cards use flash memory, and are known as flash memory cards. Flash memory cards have become widely used for mass data storage applications, and are a popular alternative for conventional add-on card implemented non-volatile memory solutions such as rotating hard disks and battery-backed SRAM, especially for notebook computers, personal data assistants (“PDA”), and some high-end digital cameras. As an alternative to rotating hard disk PC cards, flash memory cards are more rugged and space efficient, are silent, consume less power, provide higher performance (in most cases), and provide a removable form-factor. As an alternative to battery-backed SRAM PC cards, flash memory cards typically offer higher-densities and lower cost per bit and are not as limited by reliability and temperature issues associated with batteries used in the battery-backed SRAM PC cards.
Generally, these memory cards perform only auxiliary storage functions for the host systems. In some cases, some simple data processing functions are performed in this card. There are currently various standards on these PC cards developed by different vendors. Each of these memory card standards defines a card type that is able to perform some storage functions. The following is a brief summary of various standards in the memory cards industry
Flash PC cards are compliant with the Personal Computer Memory Card International Association (“PCMCIA”) standard. While flash PC cards can provide sufficient amounts of memory for a broad range of applications, they have not been widely accepted for use in applications such as mobile and portable electronics, or for use in applications having significant cost sensitivity. PC cards simply tend to be too large for many portable applications such as pagers, voice recorders, mobile telephones, and hand-held meters. In addition, PC cards are also too bulky and heavy for carrying in a pocket or wallet, as would be desirable for many consumer applications.
An example of a PC card that adds functionality to the host system is described in U.S. Pat. No. 6,047,342 of Depew. The device of this patent receives data from the host, operates on the data, and returns the processed data to the host. This system provides no mass storage on the card and stores the data being processed only in RAM for buffering purposes.
Compact flash card is a small format flash memory card that was initially announced by SanDisk Corporation in 1994. The compact card supports the IDE/ATA interface standard by means of an on-card ATA controller IC. Memory capacity of up to 256 Megabytes is currently available. Both 5 volt and 3.3 volt power supplies are supported. A compact flash card is interfaced to notebook computers and PDAs by inserting the card into a special PC card adapter.
Miniature card is a small format card that was initially announced by Intel Corporation in 1995. The miniature card supports a linear addressing range of up to 64 Megabytes of memory using a 16-bit data bus. The miniature card specification allows for flash, DRAM and ROM memory types. Both 5 volt and 3.3 volt power supplies are supported by the specification. A miniature card is interfaced to notebook computers and PDAs that support the standard PC card interface with a special PC card adapter. A miniature card specification is described in Miniature Card Specification, Release 1.0, February 1996, available from Intel Corporation of Santa Clara, Calif.
Solid state floppy disk card, or SSFDC, is a small format card initially announced by Toshiba Corporation in 1995. The SSFDC has 22 flat contact pads, some of which are I/O pads for both address and data input and output as well as for command inputs. The card specification is dedicated to byte serial NAND-type flash memory. The specification accommodates 5 volt or 3.3 volt power supplies. An SSFDC is interfaced to notebook computers and PDAs that have the standard PC card interface with a special PC card adapter. An illustrative device is type TC5816ADC, which is described in Preliminary TC5816ADC Data Sheet No. NV16030496, April 1996, available from Toshiba America Electronic Components, Inc. of Irvine, Calif. The device is said to be suitable for such applications as solid state file storage, voice recording, image file memory for still cameras, and other systems which require high capacity, non-volatile memory data storage
Siemens Components of Cupertino, Calif. has described a device known as MultiMediaCards, or MMC; see Portable Design, July 1996, p 23 et seq. The original MultiMediaCard package had 6 edge-mounted contact pads and users a serial bus. This format has been extended into a 7 pin format as described in “The MultiMediaCard System Specification” produced by the Technical Committee of the MultiMediaCard Association (MMCA). The specification accommodates a various range of voltage supply. The device is suitable for such applications as games, talking toys, automobile diagnostics, smart phones, PDAs (tailored operating systems or special programs), and notebooks through a PDA adapter. These cards provide mass non-volatile storage, but lack processing capabilities. The MultiMediaCard design has been further developed as the Secure Digital, or SD, card. This design adds additional data pins and security features to the MultiMediaCard package.
Integrated Circuit (IC) card format and the similar Identification (ID) card format, commonly known as smart cards, were introduced in the mid 1980's and have been standardized by the International Organization for Standardization, Identification Cards—Integrated Circuit Cards with Contacts, Part 1: Physical Characteristics, Document No. ISO 7816-2, May 1988; and International Organization for Standardization, Identification Cards—Integrated Circuit Cards with Contacts, Part 3: Electronic Signals and Transmission Protocols, Document No. ISO 7816-3, September 1989. Smart cards are credit card sized and typically contain a microcontroller with a small amount, on the order of a few kilobytes, of EEPROM memory. The cards are popular in Europe and are making inroads into the U.S. market. Primary application are smart telephone calling cards and stored value cards, the later application being promoted by credit card companies like Visa and MasterCard as a replacement for paper currency. Although these cards have some processing ability on the card, it is not available to the user and does not let the user add ability to the combined system. Any processing ability is fixed by the card's issuer along with the initial data prior to the user receiving the card. The smart card system does not execute any additional functions for the user and are just for the secured storage of data, either for security uses or for keeping a stored value, and the processing ability of the card is relegated to managing these functions based on the issuer's determination. This allows for a secure link only between the card and the host.
Another low memory capacity card format is known as the Subscriber Identification Module (“SIM”), which is used in conjunction with mobile telephones based on the Global System for Mobile Communication (“GSM”) standard. The SIM specification is set forth in a publication of the European Telecommunication Standard Institute entitled European Digital Cellular Telecommunication System, Global System for Mobile Communications, Phase 2: Specification of Subscriber Identity Module—Mobile Equipment Interface, Document No. GSM 11.11 Reference (RE/SMG)—091111PR3, ICS 33.060.50 December 1995. SIMs offer only a very limited amount of memory, typically less than one kilobit. However, this small amount of memory is sufficient to provide a GSM mobile phone with secure identification of the GSM subscriber, and may also hold a small amount of data for call metering, phone number storage, and in some cases very short data messages (less than a few hundred bytes of data). The plug-in SIM typically is housed in a small hinged smart card connector similar to the type CCM03 available from ITT Cannon Corporation of Santa Ana, Calif. The small form factor allows the GSM SIM to be placed inside the phone as a plug-in module.
Other memory technologies have not been widely used in insertable/removable memory modules and cards because of their inherent shortcomings relative to such successful technologies such as flash memory. For example, battery-backed SRAM or DRAM memories require supplemental battery power when the main power is removed, while flash memory is non-volatile (no battery is needed) and is more reliable over temperature. Flash memory is available in higher densities and at lower cost/bit than SRAM and EEPROM memory, and is cost-competitive with DRAM memory.
In some cases, data processing is performed on the data before being transmitted to the PC card for storage. In these cases, data is processed in the host unit and then transmitted from the host unit to the card unit for storage. For example, data can be encrypted in the host and then the encrypted data is sent to the memory card for storage. Another example is data being compressed in the host and then sent to the memory card for storage.
FIG. 1 shows a conventional system having data processed by the host unit and then transmitted to the PC card for storage. As shown in the figure, the system comprises two units: a host unit 160 and a card unit 100, for example a standard MultiMediaCard or SD card. Generally, the host unit can be a consumer apparatus such as a cellular phone, a PDA, a Palm Pilot, or a personal computer. The host unit 160 comprises a processor 162 and other supporting components, such as a host memory 163, a timer 164, and a number of other standard elements not shown here. Furthermore, the host unit further comprises a card interface 161 for communicating with the card unit 100. The host interface 161 can be implemented using any of the above-mentioned protocols defined by the various manufacturers or associations.
As shown in FIG. 1, the card unit 100 generally comprises a host interface 141, memory storage and, in some cases, an on-card micro-controller. For the example shown, the host interface 141 of the card unit is used for communicating with the host unit 160. The on-card micro-controller 131 is used to control the loading of data from the host unit to the memory storage. In addition, the controller is designed for handling memory functions such as addressing and buffering. The controller 131 and host interface 141 are connected to the card bus 153, to which may also be connected some non-programmable ROM memory 123 for program storage and a RAM memory 121, usually volatile, that can act as a cache, as described for example in U.S. Pat. No. 5,418,752 and U.S. Pat. No. 5,172,338, which are both hereby incorporated by this reference. The mass storage memory 111, that will be FLASH memory on an MultiMediaCard or SD card, is not connected directly to the bus 153, but is instead connected through 155 to mass storage interface 115, which is in turn connected to bus 153. The mass storage interface 115 serves as a “non-linear” or “non-random” access interface for controlling the FLASH memory where data is stored in a non-linear fashion. The contents in the mass storage memory 111 can not be addressed randomly by the controller 131, or, more accurately, can only be accessible in blocks that are too large for the controller to utilize without first reading out and caching the whole block.
However, the system design as shown in FIG. 1 suffers from performance problems when data is required to be processed (e.g. compression/decompression and/or encryption/decryption) before being stored in the memory storage. The data processing usually requires intensive mathematical computation that can greatly degrade the performance of the processor in the host unit. Additionally, operating sequences stored on the card are in ROM 123. In a actual card, the physical size of the ROM 123 portion is relatively quite large and costly, so that the number of operating sequences that can be stored are restricted by the desire to minimize the amount of ROM.